/*
 * $Id: tpy_tabcanal.prg 2011-12-28 17:26 riztan $
 */

/** \file tpy_tabcanal.prg
 * \brief Funciones particulares de TPuy para uso en Servidor NetIO de Tpuy.
 *
 * \copyright GPL 
 * \date 2011 
 * \author Riztan Gutierrez <riztan@gmail.com>
 *
 * \todo Revisar en Dolphin nuevamente la posibilidad de incorporar el metodo GetEngine y SetEngine.
 * ver en la funcion DolpInit() el uso.
 */

#include "tdolphin.ch"  // Esto debe cambiar cuando se realice el trabajo de conexión universal.
#include "common.ch"

#define TPY_TABLA      struct[1]
#define TPY_FIELDS     struct[2]
#define TPY_INDEXES    struct[3]
#define TPY_FOREIGNS   struct[4]
#define TPY_TRIGGERS   struct[5]
   
/** \brief Inicia la conexión a la Base de datos y verifica la estructura de tablas de Tpuy. 
    \return .t. si el objeto de conexión es creado.
  */
function DbInit()
   local cDB := "tpy", cCode:=""
   local lCreate := .f.
   local aTables
   
   ? CRLF+Repl("_",30)+CRLF+"Ejecutando funcion DbInit()"
   //? "oDbServer ",hb_IsObject( oDbServer )
   
   //if !hb_IsObject( oDbServer )
   //   db_Connect( "oDbServer" )
   //endif
   
   if !hb_IsObject( oDbServer )
      return lCreate 
   endif
   
   if !oDbServer:DBExist( cDB )
      ? "Creando el Esquema "+cDB
      oDbServer:DBCreate( cDB, .f. )
      lCreate := .t.
   endif

   aTables := tpy_TablesStruct()
   
//   ? LEN(aTables[2])
//   ? ValToPrg( aTables )
//   return .t.
   
   AEVAL( aTables, { |struct| tpy_CheckTable(TPY_TABLA   , ;
                                             TPY_FIELDS  , ;
                                             TPY_INDEXES , ;
                                             TPY_FOREIGNS  ) } )
                                             
//? "motor en usuarios |"+oDbServer:GetEngine( "usuarios"  )+"|"

return lCreate

//eof
